#encoding=utf-8

#抓取网上的图片,并按网上图片原名来明名

import urllib.request
import socket
import re
import sys
import os

targetDir=r'G:\Python\homework\images' #文件保存路径

def destFile(path):
    if not os.path.isdir(targetDir):#如果文件路径不存在，则新建文件路径
        os.mkdir(targetDir)
    pos = path.rindex('/') #返回'/' 在字符串中最后出现的位置
    t=os.path.join(targetDir,path[pos+1:]) #连接两个文件名地址
    return t

weburl=r'http://www.douban.com/'
webheaders={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36'}
req=urllib.request.Request(url=weburl,headers=webheaders) #构造请求报头
webPage=urllib.request.urlopen(req) #发送请求报头
contentBytes=webPage.read()
pattern=r'(http:[^s]*?(jpg|png|gif))'
print(pattern)
for link,t in set(re.findall(pattern,str(contentBytes))):  #正则表达式查找jpg\png\gif格式的图片
    print(link)
    try:
        urllib.request.urlretrieve(link,destFile(link))  #下载图片
    except:
        print('爬虫失败！') #抛出异常
